package com.kamistoat.meimeistore.product.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.kamistoat.common.utils.PageUtils;
import com.kamistoat.meimeistore.product.entity.AttrGroupEntity;
import com.kamistoat.meimeistore.product.vo.AttrGroupWithAttrVo;
import com.kamistoat.meimeistore.product.vo.thymeleaf.skuItem.SpuItemBaseAttrGroupVo;

import java.util.List;
import java.util.Map;

/**
 * 属性分组
 *
 * @author kamistoat
 * @email linjianshanke@163.com
 * @date 2021-09-12 14:28:44
 */
public interface AttrGroupService extends IService<AttrGroupEntity> {

    PageUtils queryPage(Map<String, Object> params);

    /**
     * 如果传入的categoryId非零，则只查询catelogId下对应的分组属性。
     * 如果是零，就查询所有的分组属性。
     *
     * @param params     分页属性
     * @param categoryId 指定查询对象
     * @return 分页包装
     */
    PageUtils queryPage(Map<String, Object> params, long categoryId);

    /**
     * 根据三级菜单的Id，查询属性分组列表，嵌套属性列表
     *
     * @param catelogId 三级分类ID
     * @return 属性分组列表
     */
    List<AttrGroupWithAttrVo> getAttrGroupWithAttr(Long catelogId);

    /**
     * Thymeleaf专用。用于查询sku商品详情时，根据其spuId将基础属性分组+基础属性都查出来
     *
     * @param spuId skuId的spuId
     * @param catalogId skuId所属的catalogId
     * @return 列表
     */
    List<SpuItemBaseAttrGroupVo> getAttrGroupWithAttrBySpuId(Long spuId, Long catalogId);
}

